/*
 * @Author: lineCode
 * @Date: 2025-03-20 23:02:06
 * @LastEditors: lineCode
 * @LastEditTime: 2025-06-12 13:11:43
 * @FilePath: /backend/shorthand-modules/shorthand-modules-content/src/main/java/com/angus/modules/content/domain/SysOrder.java
 */
package com.angus.modules.content.domain;

import com.angus.common.core.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author lineCode
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("sys_order")
public class SysOrder extends BaseEntity {

    private static final long serialVersionUID = 113424324345454L;

    /** ID */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /** 订单ID */
    private String orderNo;

    /** 客户ID */
    private Long userId;

    /** 课程CODE */
    private String courseCode;

    /** 课程名称*/
    private String courseName;

    /** 课程类型 CN、EN */
    private String courseType;

    /** 付款金额 */
    private BigDecimal courseAmount;

    /** 订单状态 1 未支付，2 已支付，3 已退款, 4 已取消, 5 支付失败 */
    private Integer status;

    /** 支付方式 1支付宝支付，2微信支付，3 Paypal */
    private String payMethod;

    /** 支付时间 */
    private LocalDateTime payTime;

    /** 推荐码 */
    private String recommendCode;

    /** 创建时间 */
    private LocalDateTime createTime;

    /** 有效期 */
    private LocalDateTime expireTime;
    /**
     * 课程佣金分成比例：课程价格 * 佣金比例 = 佣金金额
     */
    private BigDecimal commissionRate;

    /**
     * 有效天数： 默认 365天
     */
    private Integer validDays;

    /** 客户昵称 */
    @TableField(exist = false)
    private String nickName;
}

